package com.qike.duola.service;

import com.qike.duola.domain.DuolaProject;
import com.qike.duola.dto.QuoteAddDto;
import com.qike.duola.dto.QuoteEditDto;
import com.qike.duola.dto.QuoteListDto;
import com.qike.duola.vo.EnumList;
import com.qike.duola.vo.PayGoodsListByQuoteIdVo;
import com.qike.duola.vo.QuoteList;
import com.qike.duola.vo.QuoteListVo;

import java.util.List;

/**
 * @Author: Eric.zhou
 * @Date: 2020/9/2 15:10
 */
public interface DuolaQuoteService {
    /**
     * 添加报价单
     * @param quoteAddDto
     */
    void quoteAdd(QuoteAddDto quoteAddDto) throws Exception;

    /**
     * 报价单列表
     * @param quoteListDto
     * @return
     */
    QuoteListVo quoteList(QuoteListDto quoteListDto);

    /**
     * 编辑报价单
     * @param quoteEditDto
     */
    void quoteEdit(QuoteEditDto quoteEditDto) throws Exception;

    /**
     * 删除报价单
     * @param id
     */
    void quoteDel(Integer id) throws Exception;

    /**
     * 通过工程选择对应的报价单列表
     * @param projectId
     * @return
     */
    List<EnumList> quoteListByProjectId(Integer projectId);

    /**
     * 通过工程选择对应的报价单
     * @param quoteId
     * @return
     */
    List<EnumList> payListByQuoteId(Integer quoteId);

    /**
     * 通过报价单id列出所有商品价格及结算方式
     * @param quoteId
     * @return
     */
    List<PayGoodsListByQuoteIdVo> payGoodsListByQuoteId(Integer quoteId);

    /**
     * 通过客户id获取所有已审批通过的工程
     * @param uid
     * @return
     */
    List<DuolaProject> payExaminProjectByUid(Integer uid,String projectName);

    /**
     * 通过id获取报价单
     * @param id
     * @return
     */
    QuoteList quoteById(Integer id) throws Exception;
}
